package com.example.smart_community.service;

import com.example.smart_community.mapper.UserMapper;
import com.example.smart_community.model.MessageModel;
import com.example.smart_community.po.User;
import com.example.smart_community.util.StringUtil;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public MessageModel login(String username, String userpass){
        MessageModel messageModel=new MessageModel();
        if(StringUtil.isEmpty(username)||StringUtil.isEmpty(userpass)){
             messageModel.setCode(0);
             messageModel.setMsg("用户名和密码均不能为空");
             return messageModel ;
        }
        User user1=userMapper.selectByName(username);
        if(user1!=null){
            if(user1.getUserpass().equals(userpass)){
                messageModel.setCode(1);
                messageModel.setMsg("登录成功");
                messageModel.setUser(user1);
            return messageModel ;
            }else{
                messageModel.setCode(0);
                messageModel.setMsg("密码错误");
                return messageModel ;
            }
        }else{
            messageModel.setCode(0);
            messageModel.setMsg("用户名不存在");
            return messageModel ;
        }

    }
    public MessageModel register(String username,String userpass,String suserpass){
        MessageModel messageModel=new MessageModel();
        if(StringUtil.isEmpty(username)||StringUtil.isEmpty(userpass)||StringUtil.isEmpty(suserpass)){
            messageModel.setCode(0);
            messageModel.setMsg("以上均为必填信息");
            return messageModel ;
        }
        User user=userMapper.selectByName(username);
        if(user!=null){
            messageModel.setCode(0);
            messageModel.setMsg("用户名已存在,请重新填写");
            return messageModel ;
        }else{
            if(userpass.equals(suserpass)){
               int n= userMapper.insertUser(username, userpass, suserpass);
               if(n>0){
                   messageModel.setCode(1);
                   messageModel.setMsg("注册成功");
                   return messageModel ;
               }else{
                   messageModel.setCode(0);
                   messageModel.setMsg("注册失败");
                   return messageModel ;
               }
            }else{
                messageModel.setCode(0);
                messageModel.setMsg("两次密码不一致");
                return messageModel ;
            }
        }
    }
    public MessageModel modify(String username, String userpass,String newpass){
        MessageModel messageModel=new MessageModel();
        if(StringUtil.isEmpty(username)||StringUtil.isEmpty(userpass)){
            messageModel.setCode(0);
            messageModel.setMsg("用户名密码不得为空");
            return messageModel ;
        }
        User user=userMapper.selectByName(username);
        if(user!=null){
            if(user.getUserpass().equals(userpass)){
                int n=userMapper.updateUser(username, userpass, newpass);
                if(n>0){
                    messageModel.setCode(1);
                    messageModel.setMsg("修改密码成功");
                    return messageModel ;
                }else{
                    messageModel.setCode(0);
                    messageModel.setMsg("修改密码失败");
                    return messageModel ;
                }
            }else{
                messageModel.setCode(0);
                messageModel.setMsg("原密码输入错误");
                return messageModel ;
            }
        }else{
            messageModel.setCode(0);
            messageModel.setMsg("用户名不存在");
            return messageModel ;
        }

    }
    public MessageModel logout(String username,String userpass){
        MessageModel messageModel=new MessageModel();
        if(StringUtil.isEmpty(username)||StringUtil.isEmpty(userpass)){
            messageModel.setCode(0);
            messageModel.setMsg("用户名和密码均不能为空");
            return messageModel ;
        }
        User user=userMapper.selectByName(username);
        if(user!=null){
            if(user.getUserpass().equals(userpass)){
                int n=userMapper.deleteUser(username,userpass);
                if(n>0){
                    messageModel.setCode(1);
                    messageModel.setMsg("注销成功");
                    return messageModel ;
                }else{
                    messageModel.setCode(0);
                    messageModel.setMsg("注销失败");
                    return messageModel ;
                }
            }else{
                messageModel.setCode(0);
                messageModel.setMsg("密码错误");
                return messageModel ;
            }
        }else{
            messageModel.setCode(0);
            messageModel.setMsg("用户名不存在");
            return messageModel ;
        }
    }
}
